<?xml version="1.0" encoding="utf-8"?>
<schema targetNamespace="http://www.opengis.net/ows/2.0"
        xmlns:ows="http://www.opengis.net/ows/2.0"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified"
        version="2.0.2"
        xml:lang="en">
  <annotation>
    <appinfo>owsManifest.xsd</appinfo>
    <documentation>This XML Schema Document specifies types and elements for
    document or resource references and for package manifests that contain
    multiple references. The contents of each type and element specified here
    can be restricted and/or extended for each use in a specific OWS
    specification.

    OWS is an OGC Standard.
    Copyright (c) 2009 Open Geospatial Consortium.
    To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
    </documentation>
  </annotation>
  <!-- ==============================================================
                includes and imports
        ============================================================== -->
  <include schemaLocation="owsAll.xsd"/>
  <include schemaLocation="owsDataIdentification.xsd" />
  <import namespace="http://www.w3.org/1999/xlink"
          schemaLocation="http://www.w3.org/1999/xlink.xsd" />

  <!-- ==========================================================
                Types and elements
            ========================================================== -->
  <element name="AbstractReferenceBase"
           type="ows:AbstractReferenceBaseType"
           abstract="true" />
  <!-- ========================================================== -->
  <complexType name="AbstractReferenceBaseType">
    <annotation>
      <documentation>Base for a reference to a remote or local
      resource.</documentation>
      <documentation>This type contains only a restricted and annotated set of
      the attributes from the xlink:simpleAttrs attributeGroup.</documentation>
    </annotation>
    <attribute name="type"
               type="string"
               fixed="simple"
               form="qualified" />
    <attribute ref="xlink:href"
               use="required">
      <annotation>
        <documentation>Reference to a remote resource or local payload. A
        remote resource is typically addressed by a URL. For a local payload
        (such as a multipart mime message), the xlink:href must start with the
        prefix cid:.</documentation>
      </annotation>
    </attribute>
    <attribute ref="xlink:role"
               use="optional">
      <annotation>
        <documentation>Reference to a resource that describes the role of this
        reference. When no value is supplied, no particular role value is to
        be inferred.</documentation>
      </annotation>
    </attribute>
    <attribute ref="xlink:arcrole"
               use="optional">
      <annotation>
        <documentation>Although allowed, this attribute is not expected to be
        useful in this application of xlink:simpleAttrs.</documentation>
      </annotation>
    </attribute>
    <attribute ref="xlink:title"
               use="optional">
      <annotation>
        <documentation>Describes the meaning of the referenced resource in a
        human-readable fashion.</documentation>
      </annotation>
    </attribute>
    <attribute ref="xlink:show"
               use="optional">
      <annotation>
        <documentation>Although allowed, this attribute is not expected to be
        useful in this application of xlink:simpleAttrs.</documentation>
      </annotation>
    </attribute>
    <attribute ref="xlink:actuate"
               use="optional">
      <annotation>
        <documentation>Although allowed, this attribute is not expected to be
        useful in this application of xlink:simpleAttrs.</documentation>
      </annotation>
    </attribute>
  </complexType>
  <!-- ========================================================== -->
  <element name="Reference"
           type="ows:ReferenceType"
           substitutionGroup="ows:AbstractReferenceBase" />
  <!-- ========================================================== -->
  <complexType name="ReferenceType">
    <annotation>
      <documentation>Complete reference to a remote or local resource,
      allowing including metadata about that resource.</documentation>
    </annotation>
    <complexContent>
      <extension base="ows:AbstractReferenceBaseType">
        <sequence>
          <element ref="ows:Identifier"
                   minOccurs="0">
            <annotation>
              <documentation>Optional unique identifier of the referenced
              resource.</documentation>
            </annotation>
          </element>
          <element ref="ows:Abstract"
                   minOccurs="0"
                   maxOccurs="unbounded" />
          <element name="Format"
                   type="ows:MimeType"
                   minOccurs="0">
            <annotation>
              <documentation>The format of the referenced resource. This
              element is omitted when the mime type is indicated in the http
              header of the reference.</documentation>
            </annotation>
          </element>
          <element ref="ows:Metadata"
                   minOccurs="0"
                   maxOccurs="unbounded">
            <annotation>
              <documentation>Optional unordered list of additional metadata
              about this resource. A list of optional metadata elements for
              this ReferenceType could be specified in the Implementation
              Specification for each use of this type in a specific
              OWS.</documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <!-- =========================================================== -->
  <element name="ReferenceGroup"
           type="ows:ReferenceGroupType" />
  <!-- =========================================================== -->
  <complexType name="ReferenceGroupType">
    <annotation>
      <documentation>Logical group of one or more references to remote and/or
      local resources, allowing including metadata about that group. A Group
      can be used instead of a Manifest that can only contain one
      group.</documentation>
    </annotation>
    <complexContent>
      <extension base="ows:BasicIdentificationType">
        <sequence>
          <element ref="ows:AbstractReferenceBase"
                   maxOccurs="unbounded" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- =========================================================== -->
  <element name="Manifest"
           type="ows:ManifestType" />
  <!-- =========================================================== -->
  <complexType name="ManifestType">
    <annotation>
      <documentation>Unordered list of one or more groups of references to
      remote and/or local resources.</documentation>
    </annotation>
    <complexContent>
      <extension base="ows:BasicIdentificationType">
        <sequence>
          <element ref="ows:ReferenceGroup"
                   maxOccurs="unbounded" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- ========================================================== -->
</schema>
